רק לפני 10 ימים יצאה הגרסה האחרונה של php 5.4.5 שמתקנת באג הבטחה קריטי אבל זה לא הסיבה היחידה לעדכן את השרתים. המפתחים עושים הכל כדי שכל גרסת PHP תהיה מהירה מקודמותיה.
מהירה פי 2 !!??
הכל התחיל בערב יום שבת כשישב מול המקלדת שלו וחשב לעצמו איך לנצל את השעה הקרובה עד שיתחיל השידור של המשחק בטלוויזיה. הדפדפן החליף בין עמודי הפייסבוק לבלוגים בכל לחיצה עד שפתאום נעצר בעמוד לבן עם אותיות קטנות ושחורות. על המסך הופיעה הכותרת php moves to git .
"מעניין" - חשב לעצמו. "עכשיו אפשר לראות מה חדש בגרסה הבאה עוד לפני שהיא יצאה" - והדפדפן במהירות החליף את התמונה על המסך בעמוד הראשי של github.com. למרות שעוד לא עבר זמן רב מהרגע שיצאה 5.3 ולידיו הגיעה האפשרות לשחק עם ניימספייסים ולהעביר פונקציות אנונימיות בתור פרמטרים, הפיתוי לראות מה חדש היה גדול.
פקודה אחת והגרסה החדשה כבר הופיעה בשולחן העבודה. עוד שלוש פקודות והכל התקמפל לכמה קבצים שנשאר רק לזרוק לשרת ולהפעיל. 5.4 באמת נראית מעניין. מערכים קצרים, משהו מוזר בשם traits, מעבר ל utf-8.. "מגניב" במילה אחת.
ההתלהבות והאצבעות הזריזות ייצרו קוד קצר לבדיקת מהירות והתוצאות גרמו להתפלאות גדולה יותר. שבע השורות הפשוטות האלה הראו הבדל של שמיים וארץ במהירות יצירת האובייקטים בכל אחת מהגרסאות:
$r = 10 * 1000 * 1000;
$start = microtime(true);
while($r-- > 0) {
new StdClass();
}
$finish = microtime(true);
echo "time taken: " . ($finish - $start) . "\n";
$start = microtime(true);
while($r-- > 0) {
new StdClass();
}
$finish = microtime(true);
echo "time taken: " . ($finish - $start) . "\n";
בכל זאת מהיר אבל קצת פחות
"מהיר פי יותר מ2" הייתה התוצאה שכל כך הפתיעה אותו, עד כדי כך שהוא תפס את מכשיר הטלפון וחייג. "שמע מה גיליתי" אמר לשפופרת אחרי שהשיחה נענתה וסיפר על הממצאים. "מעניין" - הייתה התגובה של הקול בצד השני, "אבל יצירת אובייקטים זה לא כל מה שהסקריפט שלך עושה. תנסה משהו נוסף."
עוד דקה של קימוט המצח והפעלת התאים האפורים הביאה איתה את ההבנה. באמת שהסקריפט שכתב לא הייתה הבדיקה הטובה ביותר למהירות. הרי סקריפט צריך לא רק ליצור אובייקטים, אלה גם לקרוא קבצים, להחליט על תנאים, לגשת למשתנים ולעשות חישובים. סקריפט יותר מתקדם - זה מה שהיה צריך.
למזלו מפתחי ה-php כבר מגירסה 5.1 הכלילו סקריפט בדיקות מהירות שבו הם עצמם משתמשים לבדיקות ולהשוואת בין הגרסאות. הוא רק עוד לא ידע שגם פה התוצאות לא פחות משמחות. אחרי כמה דקות גם הבדיקות החדשות עלו לאוויר והגרף הבא הצתייר
"לא רע" עברה המחשבה בראשו. ניכר שמפתחי ה-PHP משתפרים וההישגים במהירות מתקבלים בזכות כתיבת קוד תקין יותר וויתור על פרקטיקות גרועות. אולי מתישהו php אפילו תהפוך לשפה טובה הייתה המחשבה האחרונה שלו לפני שפעמון הדלת קטע אותו. בעל הקול מהטלפון ועוד שני חברים עמדו שם עם פיצוחים ושתייה והמשחק בדיוק עמד להתחיל..
ואגב
יצאה PHP 5.4.5
כמו כל הגרסאות המינוריות - גם הגרסה הנוכחית יצאה במפתיע עם תיקון לבעיית אבטחה הקשורה לקריאת קבצים מהדיסק באמצעות streams. בנוסף לזה תוקנו למעלה מ30 באגים נוספים בהרחבות רבות (exif, json, fpm, iconv, reflection, ..)
ככה שיש הרבה סיבות טובות להיעזר במדריך עדכון גרסת PHP ב-wamp ולהשתדרג.
תגובות לכתבה:
באמת היא הגירסא החדשה ניראתה לי יותר מהירה ...
תודה רבה על האימות :)